{$CLEO .qa}
{$USE CLEO+}
{$USE newOpcodes}
{$USE ini}

0000: NOP

script_name "KISSPKQ"

// By ArtemQa146

const
    ped_1 = 31@
    ped_2 = 30@
    progress = 27@
    x1 = 26@
    y1 = 25@
    z1 = 24@
    render_m = 22@
    render_f = 21@
    male = 20@
    female = 19@
end

0087: x1 = 0@ // (float)
0087: y1 = 1@ // (float)
0087: z1 = 2@ // (float)

if
    0E4D: random_percent 60
then
else
    repeat
    wait 0
    until not locate_char_distance_to_coordinates $PLAYER_ACTOR pos x1 y1 z1 radius 150.0
    0A93: terminate_this_custom_script
end

0209: 1@ = random_int_in_ranges 1 4
if 1@ == 1
then male = 46
end
if 1@ == 2
then male = 59
end
if 1@ == 3
then male = 60
end
0209: 1@ = random_int_in_ranges 1 4
if 1@ == 1
then female = 56
end
if 1@ == 2
then female = 69
end
if 1@ == 3
then female = 93
end


            repeat
            wait 0
            04ED: load_animation  "KISSING"
            until 04EE:   animation "KISSING" loaded
            
            repeat
            wait 0
            04ED: load_animation  "MISC"
            until 04EE:   animation "MISC" loaded

            model.Load(male)
            model.Load(female)
            model.Load(325)
            if
                not model.Available(male)
            then
                repeat
                wait 0
                model.Load(male)
                until model.Available(male)
            end
            if
                not model.Available(female)
            then
                repeat
                wait 0
                model.Load(female)
                until model.Available(female)
            end
            if
                not model.Available(325)
            then
                repeat
                wait 0
                model.Load(325)
                until model.Available(325)
            end
            038B: load_requested_models


            009A: ped_1 = create_actor_pedtype 4 model male at x1 y1 z1
            0208: 1@ = random_float_in_ranges 0.0 360.0
            0173: set_actor ped_1 Z_angle_to 1@
            0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
            0812: AS_actor ped_1 perform_animation "gift_give" IFP "KISSING" framedelta 100.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB

            04C4: store_coords_to 1@ 2@ 3@ from_actor ped_1 with_offset 0.0 0.9 0.0
            009A: ped_2 = create_actor_pedtype 5 model female at 1@ 2@ 3@
            0172: 1@ = actor ped_1 Z_angle
            1@ += 180.0
            0173: set_actor ped_2 Z_angle_to 1@
            0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
            0812: AS_actor ped_2 perform_animation "gift_get" IFP "KISSING" framedelta 100.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
            
            0E2E: create_render_object_to_char_bone ped_1 model 325 bone 24 offset 0 0 0 rotation 0 0 0 store_to render_m
            0E2E: create_render_object_to_char_bone ped_2 model 325 bone 24 offset 0 0 0 rotation 0 0 0 store_to render_f
            0E31: set_render_object_visible render_m 1
            0E31: set_render_object_visible render_f 0
            0E37: set_render_object_scale render_m 0.8 0.8 0.8
            0E37: set_render_object_scale render_f 0.8 0.8 0.8

            model.Destroy(male)
            model.Destroy(female)
            model.Destroy(325)

            1@ = 0
            timera = 0
            progress = 0

            repeat
            wait 0
            if and
                056D:   actor ped_1 defined
                056D:   actor ped_2 defined
            then


                if or
                    not locate_char_distance_to_coordinates $player_actor pos x1 y1 z1 radius 120.0
                    051A:   actor ped_1 damaged_by_actor $PLAYER_ACTOR
                    0118:   actor ped_1 dead
                then
                    01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
                    01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
                    break
                end
                
                if or
                    051A:   actor ped_2 damaged_by_actor $PLAYER_ACTOR
                    0118:   actor ped_2 dead
                then
                    01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
                    01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
                    if 056D:   actor ped_1 defined
                    then 05E2: AS_actor ped_1 kill_actor $PLAYER_ACTOR
                    end
                    repeat
                    wait 0
                    until not locate_char_distance_to_coordinates $player_actor pos x1 y1 z1 radius 50.0
                    break
                end

                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                if or
                    1@ == 49
                    1@ == 9
                    2@ == 49
                    2@ == 9
                then
                    break
                end
                
                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                    2@ == 15
                    2@ == 31
                    2@ == 59
                then
                    break
                end

                if or
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_1
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_2
                then
                    0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                    0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                    if or
                        2@ == 1 //  
                        2@ == 3 //   (  ..)
                    then
                        break
                    end
                end
                
                if
                    progress == 0
                then
                    0612: set_actor ped_2 animation "gift_get" paused 0
                    0612: set_actor ped_1 animation "gift_give" paused 0
                    if
                        0EE4: locate_char_distance_to_char $player_actor char ped_1 radius 20.0
                    then
                        0612: set_actor ped_2 animation "gift_get" paused 1
                        0612: set_actor ped_1 animation "gift_give" paused 1
                        progress = 1
                    end
                end
                
                if
                    progress == 1
                then
                    if
                        0611:   actor ped_1 performing_animation "gift_give"
                    then
                        0613: 1@ = actor ped_1 animation "gift_give" time
                        if
                            1@ > 0.8
                        then
                            0E31: set_render_object_visible render_m 0
                            0E31: set_render_object_visible render_f 1
                            progress = 2
                        end
                    end
                end
                
                if
                    progress == 2
                then
                    if
                        0611:   actor ped_1 performing_animation "gift_give"
                    then
                        0613: 1@ = actor ped_1 animation "gift_give" time
                        if
                            1@ > 0.95
                        then
                            0209: 1@ = random_int_in_ranges 1 3
                            if
                                1@ == 1
                            then
                                0812: AS_actor ped_1 perform_animation "Playa_Kiss_02" IFP "KISSING" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
                                0812: AS_actor ped_2 perform_animation "Grlfrd_Kiss_02" IFP "KISSING" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
                                progress = 3
                            end
                            if
                                1@ == 2
                            then
                                0812: AS_actor ped_1 perform_animation "Playa_Kiss_01" IFP "KISSING" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
                                0812: AS_actor ped_2 perform_animation "Grlfrd_Kiss_01" IFP "KISSING" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
                                progress = 3
                            end
                        end
                    end
                end
                
                if
                    progress == 3
                then
                    if
                        0611:   actor ped_1 performing_animation "Playa_Kiss_02"
                    then
                        0613: 1@ = actor ped_1 animation "Playa_Kiss_02" time
                        if
                            1@ > 0.9
                        then
                            0812: AS_actor ped_1 perform_animation "IDLE_chat" IFP "PED" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                            0812: AS_actor ped_2 perform_animation "Idle_Chat_02" IFP "MISC" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                            progress = 4
                        end
                    end
                    if
                        0611:   actor ped_1 performing_animation "Playa_Kiss_01"
                    then
                        0613: 1@ = actor ped_1 animation "Playa_Kiss_01" time
                        if
                            1@ > 0.9
                        then
                            0812: AS_actor ped_1 perform_animation "IDLE_chat" IFP "PED" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time -1  // versionB
                            0812: AS_actor ped_2 perform_animation "GF_StreetArgue_02" IFP "KISSING" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1  // versionB
                            progress = 4
                        end
                    end
                end

                if
                    progress == 4
                then
                    if
                        0611:   actor ped_2 performing_animation "GF_StreetArgue_02"
                    then
                        0613: 1@ = actor ped_2 animation "GF_StreetArgue_02" time
                        if
                            1@ > 0.9
                        then
                            05DE: AS_actor ped_2 walk_around_ped_path
                            0687: clear_actor ped_1 task
                            05BF: AS_actor ped_1 look_at_actor ped_2 5000 ms
                            progress = 5
                            timera = 0
                        end
                    end
                end
                if
                    progress == 5
                then
                    if
                        timera > 5000
                    then
                        break
                    end
                end


            else
                break
            end
            until not player.Defined(0)
            if 056D:   actor ped_1 defined
            then 01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_2 defined
            then 01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
            end
            04EF: release_animation "KISSING"
            04EF: release_animation "MISC"
            repeat
            wait 0
            until not locate_char_distance_to_coordinates $player_actor pos x1 y1 z1 radius 120.0
            0A93: terminate_this_custom_script



     



0A93: terminate_this_custom_script
